include(__link__.m4)

#ifndef __NEXTOS_H__
#define __NEXTOS_H__

#include <arch.h>

// Global Variables

extern unsigned char GLOBAL_ZXN_PORT_1FFD;
extern unsigned char GLOBAL_ZXN_PORT_7FFD;
extern unsigned char GLOBAL_ZXN_PORT_DFFD;

// NEXTOS API 1.99D
// https://github.com/z88dk/techdocs/blob/master/targets/zx-next/nextos/

// Error Codes - Recoverable Disk Errors

#define NEXTOS_RC_READY  __NEXTOS_RC_READY
#define NEXTOS_RC_WP  __NEXTOS_RC_WP
#define NEXTOS_RC_SEEK  __NEXTOS_RC_SEEK
#define NEXTOS_RC_CRC  __NEXTOS_RC_CRC
#define NEXTOS_RC_NODATA  __NEXTOS_RC_NODATA
#define NEXTOS_RC_MARK  __NEXTOS_RC_MARK
#define NEXTOS_RC_UNRECOG  __NEXTOS_RC_UNRECOG
#define NEXTOS_RC_UNKNOWN  __NEXTOS_RC_UNKNOWN
#define NEXTOS_RC_DISKCHG  __NEXTOS_RC_DISKCHG
#define NEXTOS_RC_UNSUIT  __NEXTOS_RC_UNSUIT

// Error Codes - Non-Recoverable Disk Errors

#define NEXTOS_RC_BADNAME  __NEXTOS_RC_BADNAME
#define NEXTOS_RC_BADPARAM  __NEXTOS_RC_BADPARAM
#define NEXTOS_RC_NODRIVE  __NEXTOS_RC_NODRIVE
#define NEXTOS_RC_NOFILE  __NEXTOS_RC_NOFILE
#define NEXTOS_RC_EXISTS  __NEXTOS_RC_EXISTS
#define NEXTOS_RC_EOF  __NEXTOS_RC_EOF
#define NEXTOS_RC_DISKFULL  __NEXTOS_RC_DISKFULL
#define NEXTOS_RC_DIRFULL  __NEXTOS_RC_DIRFULL
#define NEXTOS_RC_RO  __NEXTOS_RC_RO
#define NEXTOS_RC_NUMBER  __NEXTOS_RC_NUMBER
#define NEXTOS_RC_DENIED  __NEXTOS_RC_DENIED
#define NEXTOS_RC_NORENAME  __NEXTOS_RC_NORENAME
#define NEXTOS_RC_EXTENT  __NEXTOS_RC_EXTENT
#define NEXTOS_RC_UNCACHED  __NEXTOS_RC_UNCACHED
#define NEXTOS_RC_TOOBIG  __NEXTOS_RC_TOOBIG
#define NEXTOS_RC_NOTBOOT  __NEXTOS_RC_NOTBOOT
#define NEXTOS_RC_INUSE  __NEXTOS_RC_INUSE

#define NEXTOS_RC_INVPARTITION  __NEXTOS_RC_INVPARTITION
#define NEXTOS_RC_PARTEXIST  __NEXTOS_RC_PARTEXIST
#define NEXTOS_RC_NOTIMP  __NEXTOS_RC_NOTIMP
#define NEXTOS_RC_PARTOPEN  __NEXTOS_RC_PARTOPEN
#define NEXTOS_RC_NOHANDLE  __NEXTOS_RC_NOHANDLE
#define NEXTOS_RC_NOTSWAP  __NEXTOS_RC_NOTSWAP
#define NEXTOS_RC_MAPPED  __NEXTOS_RC_MAPPED
#define NEXTOS_RC_NOXDPB  __NEXTOS_RC_NOXDPB
#define NEXTOS_RC_NOSWAP  __NEXTOS_RC_NOSWAP
#define NEXTOS_RC_INVDEVICE  __NEXTOS_RC_INVDEVICE
#define NEXTOS_RC_CMDPHASE  __NEXTOS_RC_CMDPHASE
#define NEXTOS_RC_DATAPHASE  __NEXTOS_RC_DATAPHASE
#define NEXTOS_RC_NOTDIR  __NEXTOS_RC_NOTDIR
#define NEXTOS_RC_FRAGMENTED  __NEXTOS_RC_FRAGMENTED

// NextOS ESX API found in esxdos.h

#endif
